package blog.service;

import java.util.List;

import com.github.pagehelper.PageInfo;

import blog.entity.Tag;

public interface TagService {
	/**
	 * 查詢所有标签
	 * @return
	 */
	public List<Tag> getAllTag();
	/**
	 * 根据标签id查询文章数量 利用分页插件进行分页
	 * @param id
	 * @return
	 */
	public PageInfo<Tag> getPageArticleCountByTagId(Integer pageIndex,Integer pageSize);
	
	/**
	 * 根据标签名查询标签
	 * @param tagName
	 * @return
	 */
	public Tag getTagByName(String tagName);
	/**
	 * 添加标签
	 * @param tagName
	 * @return
	 */
	public int addTag(Tag tag);
	/**
	 * 根据id删除标签 
	 * @param id
	 */
	public void deleteTag(Integer id);
	/**
	 * 根据id查询标签
	 * @param id
	 */
	public Tag selectTagById(Integer id);
	/**
	 * 修改标签
	 * @param tag
	 * @return
	 */
	public int updateTag(Tag tag);
	/**
	 * 添加文章的标签信息
	 * @param articleId 文章id
	 * @param tagId 标签id
	 */
	public void addArticleTag(Integer articleId, Integer tagId);
	/**
	 * 删除文章时，删除跟文章有关的article_tag_ref表中的数据
	 * @param articleId 文章id
	 */
	public void deleteTagArticle(Integer articleId);
	/**
	 * 去article_tag_ref表查询出有关的标签id
	 * @param getArticleById
	 */
	public List<Integer> getArticleTag(Integer getArticleById);
}
